Chrome 137

Ngày phát hành phiên bản ổn định: 27 tháng 5 năm 2025

Trừ khi có ghi chú khác, các thay đổi sau đây sẽ áp dụng cho bản phát hành kênh chính thức Chrome 137 dành cho Android, ChromeOS, Linux, macOS và Windows.

CSS và giao diện người dùng

Hàm if() của CSS

Hàm if() CSS cung cấp một cách ngắn gọn để thể hiện các giá trị có điều kiện. Phương thức này chấp nhận một loạt cặp điều kiện-giá trị, được phân tách bằng dấu chấm phẩy. Hàm này đánh giá từng điều kiện theo tuần tự và trả về giá trị liên kết với điều kiện đúng đầu tiên. Nếu không có điều kiện nào đánh giá là đúng, hàm sẽ trả về một luồng mã thông báo trống. Điều này cho phép bạn thể hiện logic có điều kiện phức tạp theo cách đơn giản và súc tích.

Ví dụ:

div {
  color: var(--color);
  background-color: if(style(--color: white): black; else: white);
}

.dark {
  --color: black;
}

.light {
  --color: white;
}
<div class="dark">dark</div>
<div class="light">light</div>

Theo dõi lỗi #346977961 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

Thuộc tính CSS reading-flow, reading-order

Thuộc tính CSS reading-flow kiểm soát thứ tự hiển thị các phần tử trong bố cục flex, lưới hoặc khối cho các công cụ hỗ trợ tiếp cận và được lấy tiêu điểm bằng cách sử dụng thao tác điều hướng tiêu điểm bàn phím thẻ.

Thuộc tính CSS reading-order cho phép tác giả ghi đè thứ tự theo cách thủ công trong vùng chứa luồng đọc. Đây là một số nguyên có giá trị mặc định là 0.

Tìm hiểu thêm về các thuộc tính này trong phần Sử dụng luồng đọc CSS để điều hướng tiêu điểm tuần tự logicthử một số ví dụ.

Theo dõi lỗi #40932006 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

Bỏ qua khoảng cách giữa các chữ cái trong chữ viết tay xoắn

Tính năng này thêm logic để bỏ qua chế độ cài đặt khoảng cách chữ cái cho chữ viết tay theo chỉ định của nhà phát triển, phù hợp với thông số kỹ thuật, để đảm bảo rằng khoảng cách chữ cái không làm gián đoạn cấu trúc từ và nhằm mang lại trải nghiệm người dùng tốt hơn cho những người dùng dựa vào chữ viết tay.

Với tính năng này, Chrome đảm bảo rằng chữ viết tay sẽ dễ đọc và có khoảng cách phù hợp, ngay cả khi phông chữ không có các tính năng kiểu chữ nâng cao.

Các phông chữ áp dụng cho tính năng này trong Chromium là tiếng Ả Rập, Hanifi Rohingya, Mandaic, Mongol, N'Ko, Phags Pa và Syriac vì các phông chữ này được coi là viết tay theo quy cách.

Theo dõi lỗi #40618336 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

API lựa chọn getComposedRangesdirection

Tính năng này cung cấp hai phương thức API mới cho Selection API:

  • Selection.direction trả về hướng của lựa chọn dưới dạng none, forward hoặc backward
  • Selection.getComposedRanges() trả về danh sách 0 hoặc 1 được tạo StaticRange

StaticRange được kết hợp được phép vượt qua ranh giới bóng, trong khi Range thông thường không được phép.

Ví dụ:

const range = getSelection().getComposedRanges({ shadowRoots: [root] });

Nếu vùng chọn vượt qua ranh giới gốc bóng không được cung cấp trong danh sách shadowRoots, thì các điểm cuối của StaticRange sẽ được đặt lại phạm vi để nằm bên ngoài cây đó. Điều này đảm bảo Chrome không hiển thị các cây bóng không xác định.

Theo dõi lỗi #40286116 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

Ủng hộ offset-path: shape()

Hỗ trợ offset-path: shape() để cho phép sử dụng các hình dạng thích ứng nhằm đặt đường dẫn ảnh động.

Theo dõi lỗi #389713717 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

Hỗ trợ thuộc tính transform trên SVGSVGElement

Tính năng này cho phép áp dụng các thuộc tính biến đổi (chẳng hạn như chia tỷ lệ, xoay, dịch và xiên) trực tiếp cho phần tử gốc <svg> bằng cách sử dụng thuộc tính transform. Tính năng nâng cao này cho phép bạn thao tác với toàn bộ hệ toạ độ SVG hoặc toàn bộ nội dung của hệ toạ độ đó, mang lại tính linh hoạt cao hơn trong việc tạo đồ hoạ vectơ động, thích ứng và tương tác. Bằng cách hỗ trợ thuộc tính này, bạn có thể biến đổi phần tử <svg> mà không cần thêm phần tử trình bao bọc hoặc giải pháp CSS phức tạp, giúp đơn giản hoá quy trình tạo đồ hoạ web có thể mở rộng và ảnh động.

Theo dõi lỗi #40313130 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

Màu nhấn của hệ thống cho thuộc tính accent-color

Điều này cho phép bạn sử dụng màu nhấn của hệ điều hành cho các thành phần của biểu mẫu. Bằng cách sử dụng thuộc tính CSS accent-color, bạn có thể đảm bảo rằng các phần tử biểu mẫu như hộp đánh dấu, nút chọn và thanh tiến trình sẽ tự động sử dụng màu nhấn do hệ điều hành của người dùng xác định. Tính năng này đã được hỗ trợ trên macOS kể từ năm 2021 và hiện được hỗ trợ trên Windows và ChromeOS.

Theo dõi lỗi #40764875 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

Cho phép <use> tham chiếu phần tử gốc của tài liệu bên ngoài bằng cách bỏ qua mảnh.

Tính năng này đơn giản hoá phần tử <use> SVG bằng cách nới lỏng các yêu cầu tham chiếu. Trước Chrome 137, bạn phải tham chiếu rõ ràng các mảnh trong tài liệu SVG. Nếu không có mã mảnh nào được cung cấp, <use> sẽ không thể phân giải mục tiêu và sẽ không có nội dung nào được hiển thị hoặc tham chiếu.

Ví dụ: phần tử <use> tham chiếu đến một tệp bên ngoài có giá trị nhận dạng mảnh:

<svg>
  <use xlink:href="myshape.svg#icon"></use>
</svg>

Trong ví dụ này, #icon là giá trị nhận dạng mảnh trỏ đến một phần tử có id="icon" trong myshape.svg.

Không có giá trị nhận dạng mảnh:

<svg>
  <use xlink:href="myshape.svg"></use>
</svg>

Với tính năng này, việc bỏ qua các mảnh hoặc chỉ đặt tên tệp svg bên ngoài sẽ tự động tham chiếu đến phần tử gốc, giúp bạn không cần phải thay đổi tài liệu được tham chiếu chỉ để chỉ định mã nhận dạng cho phần tử gốc. Tính năng nâng cao này giúp đơn giản hoá quy trình chỉnh sửa thủ công và cải thiện hiệu quả.

Theo dõi lỗi #40362369 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

Loại màu dấu phẩy động trên canvas

Giới thiệu khả năng sử dụng định dạng pixel dấu phẩy động (thay vì dấu phẩy cố định 8 bit) với CanvasRenderingContext2D, OffscreenCanvasRenderingContext2DImageData.

Điều này là cần thiết đối với các ứng dụng có độ chính xác cao (ví dụ: hình ảnh y tế), nội dung có dải động cao và không gian màu tuyến tính.

Theo dõi lỗi #40245602 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

view-transition-name: match-element

Giá trị match-element sẽ tạo một mã nhận dạng duy nhất dựa trên danh tính của phần tử và đổi tên phần tử này. Phương thức này được dùng trong các trường hợp Ứng dụng một trang, trong đó phần tử đang được di chuyển và bạn muốn tạo ảnh động cho phần tử đó bằng hiệu ứng chuyển đổi khung hiển thị.

Theo dõi lỗi #365997248 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

Thanh toán

Loại lỗi căn chỉnh được gửi khi tạo thông tin xác thực WebAuthn payment: SecurityError trở thành NotAllowedError

Sửa loại lỗi được gửi trong quá trình tạo thông tin xác thực WebAuthn cho thông tin xác thực payment. Do thông số kỹ thuật trước đây không khớp, việc tạo thông tin xác thực payment trong iframe nhiều nguồn gốc mà không có hoạt động kích hoạt của người dùng sẽ gửi SecurityError thay vì NotAllowedError. Đây là thông tin được gửi cho thông tin xác thực không phải thông tin thanh toán.

Đây là một thay đổi có thể gây lỗi, mặc dù là một thay đổi không phổ biến. Mã trước đó đã phát hiện loại lỗi được gửi (ví dụ: e instanceof SecurityError) sẽ bị ảnh hưởng. Mã chỉ xử lý các lỗi trong quá trình tạo thông tin xác thực (ví dụ: catch (e)) sẽ tiếp tục hoạt động chính xác.

Theo dõi lỗi #41484826 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

API web

Phân vùng URL blob: Tìm nạp/Điều hướng

Tiếp nối tính năng Phân vùng bộ nhớ, Chrome đã triển khai tính năng phân vùng quyền truy cập vào URL Blob theo Khoá bộ nhớ (trang web cấp cao nhất, nguồn gốc khung và boolean có-tổ-cụ-trên-nhiều-trang-web), ngoại trừ các thao tác điều hướng cấp cao nhất sẽ chỉ được phân vùng theo nguồn gốc khung. Hành vi này tương tự như hành vi mà cả Firefox và Safari hiện đang triển khai, đồng thời điều chỉnh việc sử dụng URL Blob với lược đồ phân vùng mà các API bộ nhớ khác sử dụng trong quá trình Phân vùng bộ nhớ. Ngoài ra, Chrome hiện thực thi noopener trên các thao tác điều hướng cấp cao nhất do trình kết xuất khởi tạo đến URL Blob, trong đó trang web tương ứng nằm trên nhiều trang web so với trang web cấp cao nhất thực hiện thao tác điều hướng. Điều này giúp Chrome phù hợp với hành vi tương tự trong Safari và các thông số kỹ thuật liên quan đã được cập nhật để phản ánh những thay đổi này.

Theo dõi lỗi #40057646 | Mục nhập ChromeStatus.com

Ngăn xếp lệnh gọi trong báo cáo sự cố từ các trang web không phản hồi

Tính năng này ghi lại ngăn xếp lệnh gọi JavaScript khi một trang web không phản hồi do mã JavaScript chạy một vòng lặp vô hạn hoặc một phép tính rất dài khác. Điều này giúp nhà phát triển xác định nguyên nhân khiến ứng dụng không phản hồi và khắc phục dễ dàng hơn. Ngăn xếp lệnh gọi JavaScript được đưa vào API báo cáo sự cố khi lý do là không phản hồi.

Theo dõi lỗi #1445539 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

Document-Isolation-Policy

Document-Isolation-Policy cho phép một tài liệu bật crossOriginIsolation cho chính tài liệu đó mà không cần triển khai COOP hoặc COEP, bất kể trạng thái crossOriginIsolation của trang. Chính sách này được hỗ trợ bằng tính năng tách quy trình. Ngoài ra, tài nguyên phụ không phải CORS nhiều nguồn gốc sẽ được tải mà không cần thông tin xác thực hoặc cần có tiêu đề CORP.

Theo dõi lỗi #333029146 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

Ed25519 trong mật mã web

Tính năng này hỗ trợ thêm các thuật toán Curve25519 trong API Web Cryptography, cụ thể là thuật toán chữ ký Ed25519

Theo dõi lỗi #1370697 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

Tính năng ngăn chặn theo dõi HSTS

Giảm thiểu hoạt động theo dõi người dùng của bên thứ ba bằng cách sử dụng bộ nhớ đệm HSTS.

Tính năng này chỉ cho phép nâng cấp HSTS cho các thao tác điều hướng cấp cao nhất và chặn các bản nâng cấp HSTS cho các yêu cầu tài nguyên phụ. Việc này khiến các trang web bên thứ ba không thể sử dụng bộ nhớ đệm HSTS để theo dõi người dùng trên web.

Theo dõi lỗi #40725781 | Mục nhập ChromeStatus.com

WebAssembly

Tích hợp lời hứa JavaScript

Tích hợp lời hứa JavaScript (JSPI) là một API cho phép các ứng dụng WebAssembly tích hợp với Lời hứa JavaScript.

Thư viện này cho phép một chương trình WebAssembly đóng vai trò là trình tạo một Lời hứa và cho phép chương trình WebAssembly tương tác với các API mang Lời hứa.

Cụ thể, khi một ứng dụng sử dụng JSPI để gọi một API (JavaScript) có chứa Lời hứa, mã WebAssembly sẽ bị tạm ngưng; và phương thức gọi ban đầu đến chương trình WebAssembly sẽ được cung cấp một Lời hứa sẽ được thực hiện khi chương trình WebAssembly hoàn tất.

Mục trên ChromeStatus.com | Thông số kỹ thuật

Gợi ý nhánh WebAssembly

Cải thiện hiệu suất của mã WebAssembly đã biên dịch bằng cách thông báo cho công cụ rằng một lệnh nhánh cụ thể rất có thể sẽ đi theo một đường dẫn cụ thể.

Điều này cho phép công cụ đưa ra quyết định tốt hơn về bố cục mã (cải thiện số lượt truy cập vào bộ nhớ đệm hướng dẫn) và phân bổ thanh ghi.

Mục trên ChromeStatus.com | Thông số kỹ thuật

WebGPU

GPUTextureView để liên kết externalTexture

Giờ đây, bạn được phép sử dụng GPUTextureView cho liên kết externalTexture khi tạo GPUBindGroup.

Theo dõi lỗi #398752857 | Mục nhập ChromeStatus.com | Thông số kỹ thuật

Quá tải copyBufferToBuffer

Phương thức GPUCommandEncoder copyBufferToBuffer() hiện có một cách đơn giản hơn để sao chép toàn bộ vùng đệm bằng cách sử dụng phương thức nạp chồng mới có các tham số kích thước và độ dời không bắt buộc.

Mục trên ChromeStatus.com | Thông số kỹ thuật

Doanh nghiệp

Ghi nhật ký và báo cáo địa chỉ IP

Chrome Enterprise đang nâng cao khả năng giám sát bảo mật và phản hồi sự cố bằng cách thu thập và báo cáo địa chỉ IP cục bộ và từ xa, đồng thời gửi các địa chỉ IP đó đến Nhật ký điều tra bảo mật (SIT). Ngoài ra, Chrome Enterprise sẽ cho phép quản trị viên tuỳ ý gửi địa chỉ IP đến các nhà cung cấp SIEM bên thứ nhất và bên thứ ba thông qua trình kết nối Báo cáo Chrome Enterprise.

Tính năng này dành cho khách hàng Chrome Enterprise Core.

Mục nhập ChromeStatus.com

Bản dùng thử theo nguyên gốc

Thuộc tính chặn kết xuất tốc độ khung hình đầy đủ

Thêm mã thông báo chặn kết xuất mới full-frame-rate vào các thuộc tính chặn. Khi trình kết xuất bị chặn bằng mã thông báo full-frame-rate, trình kết xuất sẽ hoạt động ở tốc độ khung hình thấp hơn để dành nhiều tài nguyên hơn cho việc tải.

Theo dõi lỗi #397832388 | Mục nhập ChromeStatus.com

Tạm dừng phát nội dung nghe nhìn trên các iframe chưa hiển thị

Thêm chính sách quyền media-playback-while-not-rendered để cho phép trang web của trình nhúng tạm dừng phát nội dung đa phương tiện của các iframe được nhúng không được hiển thị, nghĩa là đặt thuộc tính display thành none. Điều này sẽ cho phép nhà phát triển tạo ra trải nghiệm thân thiện hơn với người dùng và cũng cải thiện hiệu suất bằng cách cho phép trình duyệt xử lý việc phát nội dung mà người dùng không nhìn thấy.

Origin Trial | Tracking bug #351354996 | ChromeStatus.com entry

API Trình viết lại

API Rewriter (API Viết lại) chuyển đổi và diễn đạt lại văn bản đầu vào theo cách được yêu cầu, dựa trên mô hình ngôn ngữ AI trên thiết bị. Nhà phát triển có thể sử dụng API này để xoá nội dung thừa trong một văn bản nhằm phù hợp với giới hạn từ, diễn đạt lại thông điệp để phù hợp với đối tượng mục tiêu hoặc để có tính xây dựng hơn nếu phát hiện thấy thông điệp sử dụng ngôn từ độc hại, diễn đạt lại một bài đăng hoặc bài viết để sử dụng các từ và khái niệm đơn giản hơn, v.v.

Origin Trial | Theo dõi lỗi #358214322 | Mục nhập ChromeStatus.com | Spec

API Trình ghi

Bạn có thể dùng Writer API để viết nội dung mới dựa trên câu lệnh của một bài tập viết, được hỗ trợ bởi mô hình ngôn ngữ AI trên thiết bị. Nhà phát triển có thể sử dụng API này để tạo nội dung giải thích bằng văn bản về dữ liệu có cấu trúc, soạn một bài đăng về sản phẩm dựa trên bài đánh giá hoặc nội dung mô tả sản phẩm, mở rộng danh sách ưu và khuyết điểm thành chế độ xem đầy đủ và nhiều tính năng khác.

Origin Trial | Theo dõi lỗi #357967382 | Mục nhập ChromeStatus.com | Spec